home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Text Processing / BBEdit 2.5 Demo / BBEdit Demo QuickStart < prev    next >
Text File  |  1994-02-10  |  61KB  |  1,257 lines

  1. Introduction
  2. Installation
  3. Creating and Saving Documents
  4. Editing Documents
  5. More on Wrapping
  6. Browsers
  7. Printing
  8. Searching
  9. Multi-File Searching
  10. Using BBEdit With THINK C 6.0
  11. Using BBEdit with ToolServer
  12. BBEdit and XTND
  13.  
  14. Introduction
  15.  
  16. This document serves as a “Quick Start” guide for using the BBEdit demo.
  17. Some of BBEdit’s capabilities (such as the glossary, Compare, extensions,
  18. XTND translation, etc.) are not covered in this document; we encourage
  19. you to explore. The production BBEdit package includes a 168-page printed
  20. manual, which describes BBEdit’s capabilities in excruciating detail.
  21.  
  22. Installation
  23.  
  24. BBEdit consists of the following major components:
  25.  
  26. •    The BBEdit application itself
  27. •    The “BBEdit Extensions” folder
  28. •    MPW Shell tools and scripts required to support ToolServer
  29.  
  30. Only the BBEdit application file is required to use BBEdit. All other components
  31. can be installed, or not, at your discretion.
  32.  
  33. If you’re planning to install the whole set of BBEdit files, create a “BBEdit Folder”.
  34. Copy the BBEdit application, the “BBEdit BBalloons” file (if you’re using System 7),
  35. and the “BBEdit Extensions” folder into your BBEdit Folder.
  36.  
  37. ---
  38.  
  39. When you launch BBEdit for the first time, it will automatically open a 
  40. Disk Browser window. To change BBEdit’s behavior at startup, choose
  41. “Preferences...” from the Edit menu, and click the radio button which
  42. corresponds to what you’d like BBEdit to do. (If you launch BBEdit by
  43. double-clicking on one of its documents, then this setting is ignored, and
  44. BBEdit will just open the document(s) you double-clicked.)
  45.  
  46. If you’re using BBEdit as an external editor for the THINK Project Manager, we
  47. recommend that you set the startup preference to “Nothing”, for smoothest
  48. operation.
  49.  
  50. ---
  51.  
  52. Creating and Saving Documents
  53.  
  54. To create a new document within BBEdit, choose “New” from the File menu. An
  55. empty editing window will be opened on the screen. You can type in this window,
  56. paste text from another document or application, or do anything else which
  57. causes text to be placed in this window. 
  58.  
  59. If you’re using System 6 or System 7, you can use the Finder to open files
  60. created by BBEdit by double-clicking on them. 
  61.  
  62. BBEdit Demo will allow you to manipulate files using any of the commands
  63. available in the full, commercial version of BBEdit; however, it will not allow
  64. you to save your work. Demo versions often include various limitations in order
  65. to encourage you to purchase the software after giving you the opportunity to
  66. try out its features. The most common limitations are to have the program
  67. expire after a certain amount of time, or to remove the ability to save your
  68. work. These prevent you from using the demo program in lieu of the commercial
  69. software they are intended to promote. Time limits make distributing the demo
  70. software difficult, since the software might expire by the time it actually
  71. reaches a potential customer. Thus, we have opted to remove the “Save” feature.
  72.  
  73. ---
  74.  
  75. Editing Documents
  76.  
  77. In terms of its basic editing functionality, BBEdit behaves like any other word
  78. processor or text editor on the Macintosh: any typed characters are inserted at
  79. the insertion point; if there is a selection present, the selection is replaced
  80. by the first typed character, and the insertion point is placed after the first
  81. typed character.
  82.  
  83. The insertion point is indicated by a blinking vertical bar.
  84.  
  85. If there is any text selected in the active (or front) window, it is highlighted
  86. using your Mac’s default highlight color. If there is text selected in a window
  87. that is inactive (not the front window), it is framed in the highlight color.
  88.  
  89. As you type, BBEdit scrolls the window’s contents so that the insertion point is
  90. visible. Note that since BBEdit doesn’t automatically wrap the text as you type
  91. (unless you have selected “Wrap While Typing” from the options or preferences
  92. dialogs), the window may scroll horizontally.
  93.  
  94. To move text from one place to another, select the text you wish to move, and
  95. choose the “Cut” command from the Edit menu. The selected text will be deleted,
  96. and placed in a special area called the “Clipboard”. (The Clipboard always
  97. contains the last text that you cut or copied.) You can then use the “Paste”
  98. command on the Edit menu to place the text elsewhere in the document you’re
  99. editing, or even in another window altogether. Also, any text that you cut or
  100. copy can be pasted into another application. You can place text in the Clipboard
  101. without deleting it by choosing “Copy” from the Edit menu.
  102.  
  103. When you Paste, the text that’s in the Clipboard will replace the current
  104. selection (if there is one), or be inserted at the insertion point. Paste
  105. doesn’t remove text from the Clipboard, so you can Paste as many times as you
  106. wish.
  107.  
  108. To delete selected text, hit the “Delete” key on your keyboard, or choose
  109. “Clear” from the Edit menu. If you have a keyboard with a numeric keypad on it,
  110. you can hit the “Clear” key on the keypad to delete the selected text.
  111.  
  112. To select all the text in the front editing window, choose “Select All” from the
  113. Edit menu. You can then cut, copy, or perform any other action that affects
  114. selected text.
  115.  
  116. BBEdit provides an assortment of facilities for transforming text in various
  117. ways. The commands to transform text are all found under the Text menu:
  118.  
  119. •   Balance locates the pair of parentheses, braces, or brackets which encloses
  120. the current selection range or insertion point. If there are unmatched
  121. parentheses, braces, or brackets, BBEdit will beep.
  122.  
  123. •   Twiddle transposes the two characters on either side of the insertion
  124. point, or at either end of the selected text.
  125.  
  126. Note: If you hold down the Option key, Twiddle becomes Twiddle Words. Twiddle
  127. Words behaves in similar fashion to Twiddle, except that it acts on entire
  128. words, rather than individual characters.
  129.  
  130. •   Change Case… allows you to automatically switch between upper and lower
  131. case characters for entire words, first letters of words, or first letters of lines.
  132.  
  133. •   Shift Left and Shift Right indent the selected text by one tab stop (in the
  134. case of Shift Left), or outdent by one tab stop (for Shift Right). If you hold
  135. down the Shift key while choosing one of these commands, the selected text will
  136. be indented or outdented by one space instead of one tab stop.
  137.  
  138. •   The Wrap… command is used for wrapping long lines of text and filling
  139. paragraphs. Essentially, it uses carriage returns to break lines of text, to
  140. keep them from running off to the right of your screen.
  141.  
  142. •   Unwrap… removes carriage returns and spaces between groups of text.
  143. Essentially, it performs the reverse function of the “Wrap…” command.
  144.  
  145. •   Zap Gremlins… is useful for finding and altering non-printing characters
  146. in your text files.
  147.  
  148. •   Entab converts runs of spaces into tabs, according to the current setting in
  149. the “Font and Tabs…” dialog. This transformation is useful when downloading
  150. text from a mainframe computer or on-line service which uses spaces to line up
  151. columns of text; when displaying the text in a monospaced font, columns will
  152. still usually not line up unless you Entab the text.
  153.  
  154. •   Detab converts tabs into runs of spaces, according to the current setting in
  155. the “Font and Tabs…” dialog. This is useful when uploading text to a mainframe
  156. or on-line service which has no concept of tabs as column separators.
  157.  
  158. ---
  159. More on Wrapping
  160.  
  161. BBEdit offers the capability to wrap text in a variety of ways. This wrapping is
  162. not the “live” word wrapping that word-processors provide; instead, it is useful
  163. when importing text files from word processors or other programs that do not use
  164. carriage returns to break lines on the screen. When opened, such files appear to
  165. have only a few lines in them, which run far past the right-hand edge of the
  166. window.
  167.  
  168. To wrap text in the current document window, choose “Wrap…” from the Text menu.
  169.  
  170. The controls on the left half of the “Wrap…” dialog box control how much of the
  171. text is wrapped, and the maximum length of the lines after wrapping.
  172.  
  173. The group of radio buttons controls the length of lines after they have been
  174. wrapped:
  175.  
  176. •    The “Philip Bar” button will break lines of text at the philip bar. (To see
  177. the location of the philip bar, turn on “Show Philip Bar” in the Windows section
  178. of the Preferences dialog.) The philip bar indicates the maximum usable width of
  179. a document window when the window is zoomed to full size on a nine-inch
  180. “classic” Macintosh screen. For this reason, you’re guaranteed that text wrapped
  181. to the philip bar will be readable without horizontal scrolling by anyone on any
  182. Macintosh.
  183.  
  184. •    If “Window Width” is selected, no wrapped line will be longer than the
  185. current width of the window. This option is useful if you’d like the lines to be
  186. alittle longer or a little shorter than is provided for by the philip bar; just
  187. size the window appropriately and wrap.
  188.  
  189. •    If “Character Width” is selected, the number in the text field designates
  190. the maximum number of characters allowed on any line; a line that exceeds this
  191. number of characters in length will be wrapped. The “Character Width” setting is
  192. useful for preparing postings to on-line services, which can break lines in an
  193. unattractive fashion if they’re longer than a fixed number of characters
  194. (usually 80).
  195.  
  196. The controls on the right half of the dialog control paragraph wrapping. If the
  197. “Paragraph Fill” check box is turned off, long lines will be wrapped. Short
  198. lines will be left untouched.
  199.  
  200. ---
  201.  
  202. Browsers
  203.  
  204. All of the browser windows that you can create in BBEdit have some common
  205. characteristics:
  206.  
  207. •    The Status Area. This section of the browser window contains an “Open”
  208. button, so that you can open the file that is selected in the file list. The
  209. glossary browser contains additional buttons, and disk browser contains other
  210. controls as well.
  211.  
  212. •    The File List. This portion of the window contains a list of the files
  213. currently available for that particular browser. In glossary and disk browsers,
  214. the area that the file list occupies is split in two, and contains both the
  215. directory list and the file list. In a project browser, the file list contains
  216. the files contained in the project that you’re browsing. In a Search Results
  217. browser, the file list also describes the line number and context for a
  218. multi-file search match, and in the Compile Errors window, the file list also
  219. contains the error messages. In both the Search Results and Compile Errors
  220. windows, a file’s name may appear more than once in the file list.
  221.  
  222. If you click once on an entry in the file list, the file’s text will appear in
  223. the text view. If you double-click on an entry in the file list, BBEdit will
  224. open the file you clicked on; you can also achieve this effect by selecting an
  225. entry and then clicking the “Open” button, or hitting the Return or Enter key.
  226.  
  227. Each entry in the file list contains the name of the file and the icon that the
  228. finder uses to identify it. You can suppress the icons (and make more room
  229. available in the file list) by un-checking the “Show Icons in Browsers”
  230. check box in the “Browsers” section of the Preferences dialog.
  231.  
  232. Note: When running under System 6, the icons in browsers are always suppressed.
  233.  
  234. •    The Splitter. The splitter is outlined by a closely-spaced pair of
  235. horizontal lines. When you move the mouse over the splitter, the cursor changes
  236. to a splitter cursor; by clicking and dragging, you can change the relative
  237. sizes of the file list and the text view.
  238.  
  239. •    The Text View. This section of the browser contains the text of the file
  240. that is selected in the file list. You can make a file visible in the text view
  241. by clicking on its entry in the file list. In the case of Search Results and
  242. Compile Errors browsers, the appropriate text will be automatically selected in
  243. the text view whenever you click on an entry in the file list.
  244.  
  245. Typing and the Active View
  246.  
  247. Each browser window contains two or more sections; within each section, you can
  248. type (for glossary and disk browsers) or use the arrow keys to navigate the file
  249. list and open files, or use the arrow keys and the “special” keys on the
  250. extended keyboard to navigate the text in the text view. Because typing may have
  251. a different meaning depending on which view is active, and because you have
  252. multiple views available, BBEdit maintains an “active view” for each browser
  253. window. When a specific view is active, it is outlined by a heavy black border,
  254. and all keyboard input is directed to that pane.
  255.  
  256. When you use the arrow and special-function keys in the text pane of a browser,
  257. they behave just as they do in a normal editing window.
  258.  
  259. Note: When the text view is active, it is not outlined; you’ll know that this
  260. view is active because none of the views has a heavy border. It’s done this way
  261. for cosmetic reasons.
  262.  
  263. ---
  264.  
  265. Printing
  266.  
  267. BBEdit offers a variety of options for varying your printed output. These
  268. options are available from the dialog that appears when you choose “Print…”
  269. from the File menu:
  270.  
  271. The portion of the dialog above the gray line is the normal set of controls that
  272. is provided by whichever printer driver you use. Below the gray line are
  273. controls provided specifically by BBEdit.
  274.  
  275. •    The “Printing Font:” button will bring up a dialog that allows you to
  276. set the font, size, style, and tab attributes for the text when it’s printed (as
  277. opposed to when it’s displayed). For a description of the controls in this
  278. dialog, see the “Editing” section of this document.
  279.  
  280. •    Check the “Use Document’s Font” checkbox to automatically select the
  281. display font for printing.
  282.  
  283. •    The “Options…” button will present a dialog box for setting various
  284. formatting options, most of which should be self-explanatory.
  285.  
  286. Most of the options in “Options…” dialog only affect the appearance of the pages that
  287. are printed out, and can therefore be set according to your individual taste.
  288.  
  289. ---
  290.  
  291. Searching
  292.  
  293. BBEdit’s gives you the ability to search for strings of characters within the
  294. current document, or within multiple files, whether they’re currently open in
  295. BBEdit or not. When you choose “Find…” from the Search menu, BBEdit will present
  296. a dialog box with several options.
  297.  
  298. The edit field to the right of “Search For:” contains the string of characters
  299. that you wish to search for. If the “Grep” check box is checked, the string in
  300. this edit field is a regular expression. See below for more information on grep
  301. searching.
  302.  
  303. The edit field to the right of “Replace With:” contains the string of characters
  304. that will replace the current selection whenever you choose “Replace”, “Replace
  305. and Find Again”, or “Replace All” from the Search menu.
  306.  
  307. The “Match Case” check box determines whether the search is case-sensitive or
  308. not. If “Match Case” is checked, only text which has the same combination of
  309. upper and lower case letters as the Search For string will be found.
  310.  
  311. The “Entire Word” check box determines whether the text being searched must be
  312. bounded by word breaks (spaces, dashes, and other punctuation).
  313.  
  314. The “Wrap Around” check box will cause the entire document to be searched,
  315. regardless of where the current insertion point or selection range lies.
  316. Ordinarily, only the text from the start of the selection range to the end of
  317. the document is searched. If “Wrap Around” is turned on, and the search string
  318. isn’t found between the start of the selection range and the end of the
  319. document, the search will automatically restart from the beginning of the
  320. document. If the search string is found in the document after wrapping around,
  321. BBEdit will blink the menu bar to alert you.
  322.  
  323. If the “Search Backwards” check box is checked, BBEdit will search backwards
  324. from the start of the insertion point to the start of the document, rather than
  325. forward to the end of the document. If “Wrap Around” is checked, and the search
  326. string is not found between the start of the document and the start of the
  327. selection range, the backwards search will resume from the end of the document.
  328.  
  329. Activating the “Extend Selection” checkbox tells BBEdit not only to find the
  330. next occurrence of the search string, but to also select all of the text between
  331. the cursor or the selected text and the found string. For example, if you have
  332. typed in the text “The quick brown fox jumps over the lazy dog,” and place the
  333. cursor just before the letter ‘q’, and then search for the string “over,” BBEdit
  334. will highlight “quick brown fox jumps over”.
  335.  
  336. Note: Unlike many word processors, BBEdit does not just search selected text;
  337. but, rather, the entire document, using the selected text or cursor location as
  338. a starting point.
  339.  
  340. After you have entered the search and replace strings and set the search options
  341. appropriately, you can click “Find”, “Don’t Find”, or “Cancel”. If you click
  342. “Find”, BBEdit will immediately search for the current search and replace
  343. strings, using the current search options. If you click “Don’t Find”, BBEdit
  344. will accept the current search strings and options, but will not perform the
  345. search; you can then choose “Find Again” from the Search menu to start the
  346. search.
  347.  
  348. Note: You may click on the key icon to the left of the cancel button to retract
  349. the lower portion of the “Find” dialog box.
  350.  
  351. ---
  352.  
  353. Multi-File Searching
  354.  
  355. BBEdit also provides a variety of means for searching through multiple text
  356. files at one time in order to locate the search string. To perform a multi-file
  357. search, check the “Multi-File Search” check box in the Find… dialog.
  358.  
  359. When you turn on “Multi-File Search”, the “Options…” button is enabled; to set
  360. up the options for a multi-file search, click this button, and a new dialog box
  361. will appear.
  362.  
  363. The popup menu next to “Search Method” in this dialog box determines how BBEdit
  364. will locate the files to be searched.
  365.  
  366. There are five ways to locate files:
  367.  
  368. •    On Location™. If you have On Location 2.0 installed in your system, BBEdit
  369. will use On Location to search through all of the files that it knows about, and
  370. return to BBEdit all files which contain the search string. By default, BBEdit
  371. will search through all available On Location index files; you can select a
  372. single index to search from the “Search Index:” popup menu.
  373.  
  374. •    Directory Search. When this search method is chosen, BBEdit scans through
  375. the folders starting at the one you choose, and each file that it encounters
  376. will be searched for the search string.
  377.  
  378. •    Open Windows. When you choose this search method, BBEdit searches for the
  379. search string only in document windows that are currently open. This sort of
  380. search is very fast, and may be most convenient if you wish to limit the scope
  381. of your search to a few files.
  382.  
  383. •    Search Results. This search method is only available when the “Search
  384. Results” window is open and contains the results of a previous Batch Find (see
  385. below).
  386.  
  387. •    Search Project. Use this option to instruct BBEdit to search through files
  388. listed in a particular THINK C or THINK Pascal project. Use the “Set…” button to
  389. choose the project you wish to search.
  390.  
  391. The check boxes in the “Options…” dialog can be used to tailor the search to
  392. your needs:
  393.  
  394. •    Batch Find accumulates the results of the search in progress and display
  395. them all at once in a Search Results window. If this check box is not checked,
  396. then the multi-file search will stop each time it encounters a match, and open
  397. the file that contains the match.
  398.  
  399. Once the Search Results window is opened, you can double-click on entries in the
  400. window to display any given match, or select multiple matches from different
  401. files and display them all at once.
  402.  
  403. •    Search Nested Folders causes the Directory Scan search to search folders
  404. which are enclosed in the search’s starting directory. If this check box is
  405. turned off, only the files in the starting directory will be searched.
  406.  
  407. •    Skip (…) Folders causes the Directory Scan to skip folders whose names are
  408. enclosed in parentheses. This is useful if you have folders containing text
  409. files that you do not want to search for one reason or another; just enclose the
  410. folders’ names in parentheses, and they will be skipped.
  411.  
  412. •    Search All File Types. If this check box is checked, BBEdit searches files
  413. of all kinds, regardless of whether they contain actual text or not. If it’s not
  414. checked, only text files will be searched.
  415.  
  416. •    Match File Name. Use this option to search for documents with a file name
  417. that matches a particular string. Your string may use wildcards, with *
  418. representing any run of zero or more characters, and ? representing a wildcard
  419. for one character only. So, for example, a search string of “Chapter 1?” will
  420. match “Chapter 10”, “Chapter 11”, and “Chapter 12”, but not “Chapter 127”.
  421. “Tr*s” could match “Treats”, “Trees” and “Tractor Pulls”.
  422.  
  423. After you have set the options, click “OK” to save the settings and return to
  424. the “Find…” dialog. If you then click “Find”, the multi-file search will start.
  425. If you click “Don’t Find”, the current settings will be saved, but the
  426. multi-file search won’t start until you choose “Find in Next File” from the
  427. Search menu. (If Batch Find is selected, the “Don’t Find” button is disabled.)
  428.  
  429. When BBEdit performs a multi-file search, it does so in two steps. First, it
  430. constructs a list of the files to be searched, using the search method specified
  431. in the Multi-File Search Options dialog. Second, it searches each file in the
  432. list for the search string. If “Batch Find” is selected, all occurrences in each
  433. file will be displayed in the Search Results window. Otherwise, each file will
  434. be opened to display the first occurrence of the search string; you can find
  435. subsequent occurrences of the search string in the same file by choosing “Find
  436. Again” from the Search menu. If you’re not using Batch Find, you can locate the
  437. next file that contains the search string by choosing “Find In Next File” from
  438. the Search menu.
  439.  
  440. You can combine the capabilities of BBEdit’s multi-file search with the Replace
  441. All command to perform multi-file replace operations. To do this, set up a
  442. multi-file search as desired, and un-check the “Batch Find” check box. When you
  443. return to the “Find…” dialog, click “Don’t Find”, and then choose “Find &
  444. Replace All Matches…” from the Search menu. You’ll see the following dialog:
  445.  
  446. This dialog controls the behavior of a multi-file replace operation. There are
  447. three levels of safety that are available:
  448.  
  449. •    Safest. Click on the “Leave Open” radio button. For each file that
  450. contains the search string, BBEdit will perform a “Replace All” on that file,
  451. and leave the file open so that you can inspect the changes.
  452.  
  453. •    Less Safe. Click on the “Save To Disk” radio button, and make sure that
  454. the “Confirm Saves” check box is checked. BBEdit will perform a replace all on
  455. each file that contains the search string, and then ask you what to do.
  456.  
  457. If you click “Save”, BBEdit will save the changed file. If you click “Don’t
  458. Save”, BBEdit will throw away the changes that were just performed. If you click
  459. “Leave Open”, BBEdit will leave the file open; this is the same behavior as the
  460. “Safest” case, above. If you click “Cancel Search”, BBEdit will stop the
  461. multi-file replace operation.
  462.  
  463. •    Living on the Edge. Click on the “Save to Disk” radio button, and un-check
  464. the “Confirm Saves” check box. If you do this, BBEdit will perform a Replace All
  465. on each file that contains the search string, and then save the changed file to
  466. disk without asking. You should only use these settings if you’re absolutely
  467. certain of what you’re doing, since the changes are irreversible.
  468.  
  469. ---
  470.  
  471. Grep Searching
  472.  
  473. Grep is a method of pattern matching that derives from the Unix™ operating
  474. system.  You are probably familiar with simple pattern matching from using word
  475. processors;  when you ask a word processor to find all instances of the word
  476. "black", it is performing a simple pattern match, where each letter has to match
  477. literally.  Matching strings in this manner is not very hard.
  478.  
  479. The ability to match strings in a more general manner is both more powerful and
  480. more complicated.  It allows for sophisticated pattern matching operations, such
  481. as matching all words that begin with the letter "P" and end with the letters
  482. "er", or deleting the first word of every line.  Grep provides a powerful means
  483. of doing this.
  484.  
  485. To use Grep for searching documents, just check the “Grep” check box in the
  486. Find… dialog.
  487.  
  488. The popup menu next to the “Patterns:” in the dialog contains a list of your
  489. most commonly-used Grep patterns. You can change this list in the “Grep
  490. Patterns” section of the Preferences… dialog. 
  491.  
  492. How Grep Works
  493.  
  494. The “grep” mode of searching and replacing is a powerful tool. Although somewhat
  495. slower than normal text searching, grep allows the user to search for one of a
  496. set of many strings instead of a particular string.  As a simple example, you
  497. can search for any occurrence of an identifier beginning with the letter P, or
  498. all lines that begin with a left brace.
  499.  
  500. A pattern is a string of characters that, in turn, describes a set of strings of
  501. characters.  An example of a set of strings is the set of all strings that begin
  502. with the letter P and end with the letter r;  the strings “Ptr” and “ProcPtr are
  503. members of this set.  We say that a string is matched by a pattern if it is
  504. amember of the set described by the pattern.  Patterns are composed of
  505. sub-patterns which are patterns in themselves;  this is how complicated patterns
  506. may be formed.
  507.  
  508. The following section goes through the grep pattern matching and replacement
  509. rules step by step, so that by the end of it you should be able to understand
  510. how each of these grep patterns works and be able to make your own.
  511.  
  512. In some cases, the state of case sensitivity affects the results of a pattern
  513. match.  We have noted below when this is the case.
  514.  
  515. 1. Any character, with certain exceptions described below, is a pattern that
  516. matches itself.
  517.  
  518. 2.    A pattern x followed by a pattern y forms a pattern xy that matches any
  519. string ßµ where ß can be matched by x and µ can be matched by y.  We can, of
  520. course, take the compound pattern xy and concatenate yet another pattern z onto
  521. it, forming the pattern xyz.
  522.  
  523. 3.    The character . is a pattern that will match any character.
  524.  
  525. 4.    The character \ followed by any character except one of the digits 1-9 is
  526. a pattern that matches that character. (You would use this to find special
  527. characters, such as the . character. To search for a period, you would use \.).
  528.  
  529. 5.    A string of characters s surrounded by square brackets ([ and a ]) forms a
  530. pattern [s] that matches a single instance of one of the characters in the
  531. string s.  Note that the case sensitivity flag does not apply to characters
  532. between square brackets:  letters must match exactly.
  533.  
  534. 5a.     The pattern [^ß] matches any character that is not in the string ß. 
  535. Special characters will be taken literally in this context.  Again, case
  536. sensitivity doesn't apply to characters between square brackets.
  537.  
  538. 5b.    If a string of three characters in the form [a-b] occurs in the pattern
  539. p, this represents all of the characters from a to b inclusive.  All special
  540. characters are taken literally;  i.e., [!-.] denotes the characters from ! to ..
  541. Notice that the only way to include the character ] in p is to make it the very
  542. first character.  Likewise, the only way to include the character - in p is to
  543. have it either at the very beginning or the very end of p.  Single characters
  544. and ranges may both be used between brackets.
  545.  
  546. 6a.    Any pattern p formed by any combination of rules 1 or 3-5b followed by a
  547. * forms the pattern p* that matches zero or more consecutive occurrences of
  548. characters matched by p.
  549.  
  550. 6b.    Any pattern p formed by any combination of rules 1 or 3-5b followed by a
  551. + forms the pattern p+ that matches one or more consecutive occurrences of
  552. characters matched by p.
  553.  
  554. 6c.    Any pattern p formed by any combination of rules 1 or 3-5b followed by a
  555. ? forms the pattern p? that matches zero or one consecutive occurrences of
  556. characters matched by p.
  557.  
  558. We now have the ability to form patterns that are composed of sub-patterns, and
  559. will find it useful to "remember" sub-strings matched by sub-patterns and to be
  560. able to match against those substrings.
  561.  
  562. 7.    A pattern surrounded by ( and ) is a pattern that matches whatever the
  563. sub-pattern matches.  This is useful for matching two or more instances of the
  564. same string and when doing replacements.
  565.  
  566. 8.    A \ followed by n, where n is one of the digits 1-9, is a pattern that
  567. matches whatever was matched by the sub-pattern beginning with the "nth"
  568. occurrence of (.  A pattern \n may be followed by an *, and forms a pattern \n*
  569. that matches zero or more occurrences of whatever \n matches.
  570.  
  571. Sometimes it is useful to be able to "constrain" patterns to match only if
  572. certain conditions in the context outside the string matched are met.
  573.  
  574. 9.    A pattern p that is preceded by a ^ forms a pattern ^p.  If the pattern ^p
  575. is not preceded by any other pattern, it matches whatever p matches as long as
  576. the first character matched by p occurs at the beginning of a line.  If the
  577. pattern ^p is preceded by another pattern, then the ^ is taken literally.
  578.  
  579. 10.    A pattern p that is followed by a $ forms a pattern p$.  If the pattern
  580. p$ is not followed by any other pattern, it matches whatever p matches as long
  581. as the last character matched by p occurs at the end of a line.  If the pattern
  582. p$ is followed by another pattern, then the $ is taken literally.
  583.  
  584. Note that the characters ^ and $ constrain pattern matches to begin or end at
  585. line boundaries, and so can be combined to constrain a pattern to match an
  586. entire line only (as in the above example).
  587.  
  588. Grep provides not only a more sophisticated method of searching, but a
  589. sophisticated method of replacing as well.  In a replacement string, the
  590. following substitutions are made before any text replacement occurs:
  591.  
  592. 1.    Each occurrence of the character & is replaced with whatever was last
  593. matched by the entire pattern.
  594.  
  595. 2.    Each occurrence of a string of the form \n, where n is one of the digits
  596. 1-9, is replaced by whatever was last matched by the sub-pattern beginning with
  597. the nth occurrence of (.
  598.  
  599. 3.    Each occurrence of a string of the form \p, where p is other than one of
  600. the digits 1-9, is replaced by p.
  601.  
  602. This allows you to not only be able to search for a string satisfying a complex
  603. set of conditions, but also to be able to do a subsequent replacement that
  604. varies depending on the string that is matched. Note that this does not take
  605. into account escape sequences, such as \t, \r, \n, \\, etc. Suppose that you
  606. have written a program that is to become a Macintosh application (i.e., it uses
  607. the Macintosh ToolBox instead of stdio for the user interface).  Suppose also
  608. that you have discovered that you have forgotten to put a \p at the beginning of
  609. your string constants, so that your program is trying to pass C strings instead
  610. of Pascal strings to the Toolbox (which only knows how to deal with Pascal
  611. strings).  You can easily change all your C strings to Pascal strings by
  612. specifying "(.*)" as the search pattern and "\\p\1" as the replacement string.
  613.  
  614. Suppose you decided to reverse the two arguments of the function "foo".  You
  615. might try the pattern foo\(([^,]*),([^)]*)\) as the search pattern and foo(\2,
  616. \1) as the replacement pattern.  How does the search pattern work?
  617.  
  618. Let's assume we're trying to match some text that looks like foo(1,*bar)
  619.  
  620.     foo\(([^,]*),([^)]*)\)    matches    foo(1,*bar)
  621.  
  622. Since ([^,]*) matched 1 and ([^)]*) matched *bar, the two arguments to foo, the
  623. replacement pattern foo(\2, \1) will result in foo(*bar, 1)
  624.  
  625. This, unfortunately, won't work in the case of foo(1,(*bar)+2), since ([^)]*)
  626. will match only up to the first right parenthesis, leaving +2) unmatched.  If
  627. we're sure that all calls to foo end with a semicolon, however, we can change
  628. our pattern to foo\(([^,]*),([^;]*)\);. In this pattern, instead of trying to
  629. match the second argument by matching everything up to the first right
  630. parenthesis, we match everything up to the ); which terminates the invocation of
  631. foo.
  632.  
  633. In this example we showed how to analyze a grep pattern by examining
  634. sub-patterns. This is a good way of figuring out how to build a pattern as well.
  635. Grep can be thought of as a small and rather cryptic programming language, with
  636. each pattern a program and sub-pattern a statement in this language. If you try
  637. to create a grep pattern by testing a small sub-pattern, then adding and testing
  638. additional sub-patterns until the complete pattern is built, you may find
  639. building complex grep patterns not nearly as daunting as you first thought.
  640.  
  641. ---
  642.  
  643. Preferences Dialog
  644.  
  645. To bring up the Preferences dialog, choose “Preferences…” from the Edit menu, or
  646. double-click on your BBEdit Prefs file. (This may not be convenient, since the
  647. BBEdit Prefs file usually resides somewhere within the System Folder.)
  648.  
  649. The popup menu next to the “Preferences” text determines which section of the
  650. preferences you’re looking at. If you click on “Save”, all of the preferences
  651. settings will be saved to the “BBEdit Prefs” file. If you click on “Cancel”,
  652. the existing preferences will be left alone, and any changes you’ve made in the
  653. Preferences settings will be discarded.
  654.  
  655.  
  656. --> The “General Preferences” settings affect BBEdit’s overall appearance and
  657. behavior.
  658.  
  659. •    Show Icons in Browsers determines whether the desktop icons of disks,
  660. folders, and documents appear in the browser search windows. See the section
  661. on “Browsers” above for more information.
  662.  
  663. •    MPW Compatible makes BBEdit emulate some aspects of the MPW Shell’s
  664. behavior. If it’s turned on, command-A is used for Select All, command-G for
  665. Find Again, command-H for Find Selection, command-J for Go To Line…, and command
  666. -T for Replace and Find Again. If it’s turned off, these keyboard equivalents
  667. become the same as for older versions of THINK C, with some minor changes:
  668. command-A is Find Again, command-Y is Replace and Find Again, command-T is Find
  669. In Next File, and command-G is Go To Line
  670.  
  671. The “Startup Action” radio buttons control what BBEdit does when it’s
  672. launched by some means other than double-clicking on a BBEdit document, or by
  673. dragging and dropping some item onto BBEdit itself (under System 7).
  674.  
  675. •    If Nothing is selected, BBEdit will take no action at startup. This is
  676. handy if BBEdit regularly gets launched into the background, or is launched by
  677. some scripting utility which will then start feeding commands to BBEdit
  678. directly.
  679.  
  680. •    New Window causes BBEdit to bring up a new untitled window, as if the “New”
  681. command on the File menu had been chosen.
  682.  
  683. •    Open causes BBEdit to bring up an “Open…” dialog, as if the “Open…” command
  684. on the File menu had been chosen.
  685.  
  686. •    Open Several causes BBEdit to bring up the “Open Several…” dialog, as if
  687. that command had been chosen.
  688.  
  689. •    New Browser instructs BBEdit to bring up a new browser upon starting up.
  690.  
  691.  
  692. --> The “Windows” preferences control BBEdit’s window behavior.
  693.  
  694. •    Delay When Scrolling makes BBEdit wait a tenth of a second when you
  695. click in the arrows of a scrollbar before scrolling the text in a document
  696. window. This is most useful under System 6 on faster machines; often several
  697. lines will go by before your reflexes allow you to let go of the mouse button.
  698. System 7 offers a “scrolling throttle”, so this setting may be turned off.
  699.  
  700. •    Show Status Bar causes the status bar to be visible within all editing
  701. windows. (See “Editing Text With BBEdit” for a description of the status bar.)
  702. This option is on by default; you can turn it off if you have a small screen and
  703. screen “real estate” is at a premium.
  704.  
  705. •    Show Philip Bar draws a vertical gray line in the status bar at the
  706. point where the visible editing area ends on a 9-inch “classic” screen. See
  707. above for more details.
  708.  
  709. •    Show Tab Stops places tick marks in the status bar to indicate the
  710. position of tab stops in each editing window. This option is dimmed if “Show
  711. Status Bar” is turned off.
  712.  
  713. •    Show Line Numbers places line numbers along the left edge of each
  714. editing window.
  715.  
  716. •    Show Cursor Position places the cursor-position display at the lower
  717. left corner of each editing window; this display shows the position of the
  718. insertion point, or the last-changed end of the selection range.
  719.  
  720.  
  721. --> The “Editor” preferences control BBEdit’s editing and keyboard behavior.
  722.  
  723. •    The “Default Font” button sets the font which will be used to display the
  724. text in newly created windows, and for documents which have no saved state
  725. information.
  726.  
  727. •    If Auto-Indent is turned on, BBEdit will indent to the start of the
  728. preceding line whenever you type the “Return” key on the keyboard. This is
  729. useful for programmers and for reverse-indenting text. It may be less convenient
  730. if you’re using BBEdit for composing prose.
  731.  
  732. •    Wrap While Typing: generally, BBEdit does not automatically wrap text as
  733. you type it in, which means the text may scroll horizontally. Selecting this
  734. option tells BBEdit to enter carriage returns at the end of each line, according
  735. to the current “Wrap…” settings.
  736.  
  737. •    If Balance While Typing is turned on, BBEdit will flash matching
  738. parentheses, curly braces, and brackets as you type them.
  739.  
  740. •    Smart Quotes is used to determine the default value of the Smart Quotes
  741. setting for newly created windows and for documents saved with state information
  742. other than “BBEdit”.
  743.  
  744. •    Show Invisibles is used to reveal or conceal characters that normally
  745. remain invisible on the screen, such as tabs (“Δ”), carriage returns (“¬”) and
  746. ASCII control characters. When activated, each invisible character will be
  747. displayed as an inverted question mark (“¿”), except as noted.
  748.  
  749. •    Ordinarily, actions such as Entab, Detab, Zap Gremlins, and Replace All are
  750. not undoable, and BBEdit will alert you if you are about to perform a
  751. non-undoable action. If you aren’t concerned about being able to undo these
  752. actions, and don’t want BBEdit to alert you, turn on the ‘No “Can’t Undo”
  753. Alerts’ check box, and BBEdit will not alert you of these actions.
  754.  
  755. •    Exchange Command and Option reverses the meaning of the Command and
  756. Option keys when used with the left and right arrow keys. See “Editing Text with
  757. BBEdit” for more details.
  758.  
  759. •    Intelligent Cut & Paste works similar to many word processors; when
  760. activated, it allows you to double click on a word and cut it without having to
  761. worry about removing the extra space that was before or after that word. When
  762. you paste a word next to another word, this option tells BBEdit to insert a
  763. space between the word being pasted and the word which is already there, if
  764. necessary.
  765.  
  766. Note: Intelligent Cut & Paste is particularly useful for editing human language
  767. documents, but less so for computer language documents. It is generally
  768. advisable to deactivate this feature when editing source code.
  769.  
  770. •    If Use Keypad for Cursor Control is checked, the keys on the numeric
  771. keypad (on keyboards that have them) will move the cursor. See “Editing Text
  772. With BBEdit” for more details.
  773.  
  774.  
  775. --> The “Printing” settings provide the default print settings for new
  776. windows and for documents which have saved state information other than BBEdit’s.
  777.  
  778. These settings correspond to the same settings on the “Options…” dialog which
  779. can be brought up from the Print… dialog.
  780.  
  781.  
  782. --> The “Search Preferences” settings provide the defaults for text searching
  783. and multi-file searching. The options in this dialog correspond to their
  784. counterparts in the Find… and the Multi-File Search Options dialog.
  785.  
  786. The “Start From…” button sets the default starting directory for Directory
  787. Scan multi-file searches.
  788.  
  789.  
  790. --> The “Filing Preferences” settings in this part of the Preference dialog
  791. control the default settings for the Open… and Open Several… dialogs. The
  792. “Default Saved State” popup menu determines what state information will be saved
  793. by default when you choose “Save As…” for a new window or for a file with no
  794. saved state information. If “Auto-Backup” is checked, a backup will
  795. automatically be made of afile every time it is saved.
  796.  
  797.  
  798. --> The “State Preferences” settings control what parts of a file’s saved state
  799. are honored whenever a file with saved state information is opened. In some
  800. cases, it may be desirable to ignore one of these aspects of the saved state. If
  801. the “Leave Room for Finder Icons” is checked, BBEdit will make certain that
  802. there’s enough space below and to the right of any window so that icons on the
  803. desktop can be seen when you’re running under MultiFinder or System 7.
  804.  
  805.  
  806. --> The “Wrapping Preferences” settings are the default settings for the Wrap…
  807. dialog.
  808.  
  809.  
  810. --> The “Zapping Preferences” settings are the default settings for the “Zap
  811. Gremlins…” dialog.
  812.  
  813.  
  814. --> The “File Types” section of the Preferences allows you to modify the list of
  815. file creators that appears in the “File Creator” popup menu of the “Save As…,
  816. Options…” dialog box.
  817.  
  818. To add a new application’s file creator to the list, click the “Add…” button,
  819. and choose the application. To change an application’s creator signature, click
  820. on an application name in the list, enter a new four-letter code in the text
  821. field next to “Creator…”, and click the “Change” button. You can use the “Set…”
  822. button to pick an application and enter its creator code in the text field for
  823. you. To remove an application creator from the list, click on an application
  824. name, and click the “Delete” button.
  825.  
  826. The creators for “BBEdit” and “Generic Text File” are built into BBEdit and
  827. cannot be changed or deleted.
  828.  
  829. --> The “Grep Patterns” of the Preferences dialog allows you to modify the list
  830. of regular expressions which appears in the popup menu next to the “Grep” check
  831. box in the “Find…” dialog. The scrolling list box shows the names of the
  832. installed patterns. When you click on one, the text fields below the list will
  833. be filled in with its name, search pattern, and replace pattern. You can change
  834. any of these text fields, and click “Change” to replace the selected pattern
  835. with the changed one. You can also enter new information in the text fields and
  836. click “Add” to add a new pattern, or select a pattern and click “Delete” to
  837. remove it from the list.
  838.  
  839. Note: You can install a pattern with an empty replace pattern, which is useful
  840. just for locating text which matches a particular regular expression.
  841.  
  842.  
  843. --> Use the “Search Folder Preferences” dialog box to define your most commonly
  844. used starting directories for multi-file searching.
  845.  
  846. Use the “Add…” button to enter a new search folder to the list. The resulting
  847. list of search paths is made available in a popup menu in the “Multi-File
  848. Search Options” for the “Find…” command (under the Search menu).
  849.  
  850.  
  851. --> The controls in the “External Services” section of the Preferences determine
  852. what applications and utilities BBEdit will use. Certain portions of BBEdit’s
  853. functionality rely on external services being available.
  854.  
  855. Activate the checkboxes next to each service that you plan to use.
  856.  
  857. Note: Any changes you make in this section will not take effect until the next
  858. time you launch BBEdit.
  859.  
  860. Note: All of the check boxes are checked, by default. However, BBEdit will
  861. examine the desktop database of each mounted volume to determine whether a given
  862. service is available. If a service isn’t available, the corresponding check box
  863. will be un-checked. If a service becomes available at some later point in time,
  864. you’ll need to manually turn the check box back on in this section.
  865.  
  866. If any of the applications you’ll be using may be residing on a fileserver
  867. volume, check the “Check Remote Volumes” check box. Otherwise, turning it
  868. off will improve BBEdit’s startup performance to some degree.
  869.  
  870. The “Preferred Toolbox Reference” radio buttons determine which service
  871. BBEdit will use to support the insertion of Toolbox call templates and Toolbox
  872. name lookups. Make sure the check box corresponding your desired Toolbox
  873. reference (“THINK Reference” or “ToolServer”) is checked.
  874.  
  875. ---
  876.  
  877. Using BBEdit With THINK C 6.0
  878.  
  879. In order to use BBEdit as an external editor for THINK C 6.0, you’ll need
  880. System 7.0 or later.
  881.  
  882.  
  883. --> Configuring the THINK Project Manager
  884.  
  885. To instruct the THINK Project Manager to use BBEdit as its external editor:
  886.  
  887. •    Create an alias to BBEdit, copy it to the “Tools” folder in the same
  888. directory as the THINK Project Manager application, and name it “Editor”.
  889.  
  890. •    Launch the THINK Project Manager (if it isn’t already running), and choose
  891. “THINK Project Manager…” from the Options sub-menu, under the Edit menu. The
  892. THINK Project Manager will present its options dialog.
  893.  
  894. •    Choose “Editor” from the pop-up menu in this dialog. You’ll see the
  895. options screen displayed.
  896.  
  897. •    If the “Use external editor” check-box doesn’t have an “X” in it, click on
  898. it.
  899.  
  900. •    Click the “OK” button in the options dialog.
  901.  
  902. •    Quit the THINK Project Manager.
  903.  
  904. To set up BBEdit to work with the THINK Project Manager, perform the following
  905. steps:
  906.  
  907. •    Launch BBEdit.
  908.  
  909. •    Choose “Preferences…” from the Edit menu.
  910.  
  911. •    Choose “External Services” from the pop-up menu. You’ll see the “External
  912.     Services” preferences screen displayed.
  913.  
  914. •    Make sure the “THINK C” check-box has an “X” in it. If it doesn’t, click on
  915.     it. (You’ll need to quit BBEdit and re-launch it if you do this.)
  916.  
  917. •    Click the “Save” button.
  918.  
  919. •    Quit BBEdit.
  920.  
  921. --> Using BBEdit with the THINK Project Manager
  922.  
  923. Once you have set up both BBEdit and the THINK Project Manager, you’ll notice
  924. the following behavior:
  925.  
  926. •    There will be a menu in the menu bar with the THINK Project Manager icon.
  927. The commands on this menu can be used to bring the THINK Project Manager to the
  928. front (and launch it if necessary), and to control the THINK Project Manager to
  929. a certain extent.
  930.  
  931. •    Whenever the THINK Project Manager needs to open an existing text file, it
  932. will use BBEdit to open that file; if BBEdit’s not already running, the THINK
  933. Project Manager will launch it.
  934.  
  935. •    If a compilation error occurs, BBEdit will come to the front, and the line
  936. containing the error will be highlighted. BBEdit will also present an alert box
  937. containing the error message, and may also open the “Compile Errors” browser
  938. window.
  939.  
  940. •    If you edit a text file in BBEdit, the THINK Project Manager will be aware
  941. of the changes without any additional steps on your part, whether or not you
  942. save the file.
  943.  
  944. •    If the front editing window is in the project that’s currently open in the
  945. THINK Project Manager, you can get a pop-up menu of the files included by that
  946. source file by holding down the Option key and clicking on the window’s title
  947. bar. Choosing a file from this menu will open it.
  948.  
  949. Note: The pop-up menus will only appear if the source file you open has been
  950. successfully compiled at least once.
  951.  
  952. •    Whenever you open a text file, BBEdit will determine whether the file
  953. you’re opening is part of the project that’s currently open in the THINK Project
  954. Manager. If it is, you can use commands on the  THINK Project Manager menu to
  955. process that file and the project that uses it. See “Controlling the THINK
  956. Project Manager”, below, for more information.
  957.  
  958. •    If the front editing window does not belong to the project that’s currently
  959. open, only the “Bring to Front”, “Add…” and “Add & Compile commands from the
  960. THINK Project Manager menu are available.
  961.  
  962. •    If you close the currently open project via the THINK Project Manager’s
  963. “Close Project” command, BBEdit will determine which, if any, of the
  964. currently open windows belong to that project. If there are any, you’ll be asked
  965. if you wish to save any unsaved windows, and all documents belonging to that
  966. project will be closed.
  967.  
  968. •    If you switch projects, either by using the THINK Project Manager’s
  969. “Switch Project” hierarchical menu, or by double-clicking on a project in
  970. the Finder when another one is open in the THINK Project Manager, BBEdit will
  971. present an alert.
  972.  
  973. In this case, BBEdit has no way of notifying the THINK Project Manager of files
  974. that have been changed, so you should use the Project Manager’s “Make…”
  975. command to check for files that have been modified.
  976.  
  977.  
  978. -->Controlling the THINK Project Manager with BBEdit
  979.  
  980. When BBEdit is set up to control the THINK Project Manager, the following
  981. commands are available from the THINK Project Manager menu:
  982.  
  983. •    Bring To Front. This command brings the THINK Project Manager application
  984. to the foreground, launching it if necessary. If it’s not already running,
  985. BBEdit will launch it.
  986.  
  987. •    Compile. When the front window belongs to the project that’s currently open
  988. in the THINK Project Manager, this command will compile the source in the front
  989. window.
  990.  
  991. •    Check Syntax. When the front window belongs to the project that’s currently
  992. open in the THINK Project Manager, this command will check the syntax of the
  993. source in the front window.
  994.  
  995. •    Add. If the front editing window has been saved on disk, and it isn’t part
  996. of the currently open project, this command will add the file represented in the
  997. front window to the current project.
  998.  
  999. •    Add & Compile. This command behaves the same as “Add”, and will also
  1000. compile the file after adding it to the project.
  1001.  
  1002. •    Disassemble. When the front window belongs to the project that’s currently
  1003. open in the THINK Project Manager, this command will process the source in the
  1004. front window, and place the disassembly output in a new, untitled editing
  1005. window.
  1006.  
  1007. •    Preprocess. When the front window belongs to the project that’s currently
  1008. open in the THINK Project Manager, this command will process the source in the
  1009. front window, and place the preprocessor output in a new, untitled editing
  1010. window.
  1011.  
  1012. •    Precompile… When the front window belongs to the project that’s currently
  1013. open in the THINK Project Manager, this command will execute the Project
  1014. Manager’s “Precompile…” command for the front editing window.
  1015.  
  1016. •    Bring Up To Date will instruct the THINK Project Manager to check for any
  1017. modified files in the project, and recompile and reload them as necessary.
  1018.  
  1019. •    Make… brings up the following dialog:
  1020.  
  1021. •    If “Compile All Source Files” is checked, BBEdit will instruct the THINK
  1022. Project Manager to recompile all source files in the project, regardless of
  1023. whether they’ve been changed or not.
  1024.  
  1025. •    If “Load All Libraries” is checked, BBEdit will instruct the THINK Project
  1026. Manager to reload all libraries (projects, library files, and .O files) in the
  1027. project, regardless of whether they have been changed or not.
  1028.  
  1029. •    If “Use Disk” is checked, the THINK Project Manager will examine the files
  1030. on disk to determine whether they need to be recompiled or reloaded; if “Quick
  1031. Scan” is checked, the THINK Project Manager will not attempt to locate the
  1032. files, but will instead use the last-remembered location.
  1033.  
  1034. •    Run will run the currently open project, if it’s an application or runnable
  1035. desk accessory.
  1036.  
  1037. When issuing commands to the THINK Project Manager, BBEdit will honor the
  1038. settings of the “Confirm auto-make” and “Use Debugger” settings for the
  1039. currently open project. To change these settings, bring the THINK Project
  1040. Manager to the front and use the appropriate commands.
  1041.  
  1042.  
  1043. --> “Open Selection” and the THINK Project Manager
  1044.  
  1045. If you choose “Open Selection” and the file you are editing belongs to the
  1046. project that’s currently open, BBEdit will communicate with the THINK Project
  1047. Manager, and if the file name you selected is included with an “#include”
  1048. directive, BBEdit will behave as the THINK Project Manager does, and open the
  1049. file that’s specified by the #include directive.
  1050.  
  1051.  
  1052. --> Miscellaneous Issues and Pitfalls
  1053.  
  1054. Because of the nature of the external editor interface in THINK C 6.0, it’s not
  1055. possible for an external editor to be completely integrated with the THINK
  1056. environment. You’ll notice the following shortcomings; future versions of both
  1057. BBEdit and the THINK Project Manager should address them:
  1058.  
  1059. •    There is no way for an external editor to support the “Debug” command, in
  1060. which you can make a selection in your editing window visible in the THINK
  1061. Debugger’s “Source” window. In order to view a file that’s not currently visible
  1062. in the source window, switch to the THINK Project Manager, bring the project
  1063. window to the front, click once on the file that you wish to make visible, and
  1064. choose “Debug” from the Project Manager’s Source menu (or hit Command-I). The
  1065. THINK Debugger will use the correct source text, even if you have the file open
  1066. and unsaved within BBEdit.
  1067.  
  1068. •    The THINK Project Manager is not able to accept requests from an external
  1069. editor to process a source file that’s not in the currently open project. This
  1070. means that the “Compile”, “Check Syntax”, “Preprocess”, “Disassemble”, and
  1071. “Precompile” commands on the THINK Project Manager menu can only be used with an
  1072. open window which belongs to the currently open project. In order to use one of
  1073. these commands on a source file that isn’t in the current project, you’ll need
  1074. to open the source file in the Project Manager and use the appropriate command
  1075. on the Source menu to process the file.
  1076.  
  1077. Note: To open a file in the Project Manager, you’ll need to turn off the “Use
  1078. External Editor” switch in the Project Manager, and choose “Open…” from the
  1079. Project Manager’s File menu. Turn the “Use External Editor” switch back on to
  1080. resume the use of BBEdit as the external editor.
  1081.  
  1082. •    Currently, BBEdit does not track markers, data view information, or
  1083. debugger breakpoints that may be present in the file you’re editing. Because of
  1084. this, non-trivial changes to a source file will cause the THINK Debugger to
  1085. place breakpoints in locations other than those that were saved at the last
  1086. debugging session, and some data-view contexts may be lost. Also, markers will
  1087. lose synchronization with the text.
  1088.  
  1089. ---
  1090.  
  1091. Using BBEdit with ToolServer
  1092.  
  1093. BBEdit is one of a few applications which support Apple's ToolServer™. This
  1094. functionality requires system 7.0 or later, and enough RAM to run both BBEdit
  1095. and ToolServer at the same time.
  1096.  
  1097.  
  1098. --> About ToolServer
  1099.  
  1100. ToolServer is the MPW “back end”; that is, the part of MPW which can run
  1101. scripts and MPW tools. None of MPW's editing commands are available, but
  1102. nevertheless, ToolServer is an excellent tool for performing MPW-based tasks.
  1103. For more on the gestalt of ToolServer, read the documentation that comes with
  1104. it..
  1105.  
  1106.  
  1107. --> BBEdit and ToolServer
  1108.  
  1109. To communicate effectively with ToolServer, BBEdit uses a few custom scripts and
  1110. tools of its own.
  1111.  
  1112. •    BBEditStartup. This script establishes the link between BBEdit and
  1113. ToolServer. It also will execute any scripts in the same folder as ToolServer
  1114. whose names are BBEditStartup•<anything>. This is analogous to the MPW Shell's
  1115. UserStartup• functionality. This file is executed whenever you start up
  1116. ToolServer from within BBEdit. You should avoid modifying this script. If you
  1117. have customizations, create a BBEditStartup• file.
  1118.  
  1119. •    BBEditShutDown. This script breaks the link between BBEdit and ToolServer.
  1120. It will also execute any BBEditShutDown• files. You should avoid modifying this
  1121. script. If you have customizations, create a  BBEditShutdown file. This script
  1122. is executed when you turn off “Use ToolServer” or quit BBEdit after you've
  1123. turned on “Use ToolServer”.
  1124.  
  1125. •    BBEditStartup•411. This script contains some of the contents of the
  1126. UserStartup•Help file supplied with MPW's “411” Toolbox reference set. It also
  1127. contains additional commands necessary for BBEdit's support of 411 to work
  1128. correctly. You should only install this file if you are also installing the 411
  1129. system. Otherwise, leave it out of the MPW folder.
  1130.  
  1131. To enhance its support of ToolServer, BBEdit also comes with customized versions
  1132. of the File and Line commands. Within ToolServer, File and Line are not
  1133. ordinarily available, but with these scripts, you can use File and Line from
  1134. within BBEdit. These commands are particularly handy to have when working with
  1135. compiler error output.
  1136.  
  1137. The “RBBEdit” tool is essential to BBEdit’s support of ToolServer. Without this
  1138. tool, none of BBEdit’s ToolServer support will work correctly. You should copy
  1139. this tool to the Tools folder which is in the same directory as ToolServer (and
  1140. as MPW, if it’s installed).
  1141.  
  1142. To install these items, simply drag them to their appropriate places as 
  1143. indicated by the name of the folder they're in.
  1144.  
  1145.  
  1146. -->Using ToolServer
  1147.  
  1148. Once BBEdit is running, you may use ToolServer by choosing “Use ToolServer from
  1149. the MPW menu. Once ToolServer is running, a check mark will be placed next to
  1150. the “Use ToolServer” command; choose “Use ToolServer” again to shut down
  1151. ToolServer.
  1152.  
  1153. After connecting to ToolServer, BBEdit will open the “ToolServer Worksheet
  1154. window. In this window, you can enter MPW shell commands just as you would when
  1155. using the MPW Shell itself. To send a command to ToolServer, place the insertion
  1156. point on the same line as the command you wish to execute, or select the
  1157. commands you want to execute, and hit the Enter key or choose “Send Command”
  1158. from the MPW menu.
  1159.  
  1160. To execute a file full of commands (for example, the output of a makefile), open
  1161. the file, and choose “Execute Commands” from the MPW menu. Each command will be
  1162. selected and executed in sequence. This functionality is analogous to MPW's
  1163. “DoIt” command.
  1164.  
  1165.  
  1166. --> BBEdit and 411
  1167.  
  1168. To use 411 from within BBEdit, make sure that all of the BBEdit support tools
  1169. and scripts are correctly installed, as are the necessary tools and help files
  1170. for 411. Choose “Preferences…” from the Edit menu, and in the “External
  1171. Services” section, select ‘MPW “411”’ as the preferred Toolbox reference. Start
  1172. ToolServer via the “Use ToolServer” command on the MPW menu, and you’ll be able
  1173. use the 411 system as a reference system.
  1174.  
  1175. To look up a Toolbox symbol, select it in any editing window (including the
  1176. ToolServer Worksheet or a browser window) and choose “Toolbox Lookup from the
  1177. Search menu (or type Command-minus). If the symbol is found in the 411 database,
  1178. a “Help” window will be opened, and the reference information for that symbol
  1179. will be displayed.
  1180.  
  1181. To paste a call template for a Toolbox function, select the function's name and
  1182. choose “Toolbox Call Template” from the “Insert” sub-menu on the Edit menu (or
  1183. type Command-M). The selected name will be replaced with a call template of that
  1184. function.
  1185.  
  1186. If you choose “Toolbox Lookup” or “Toolbox Call Template” with no selection, a
  1187. dialog box will prompt you for the Toolbox symbol to be looked up or templated.
  1188. Type in a symbol and click the “OK” button to proceed, or the “Cancel” button to
  1189. do nothing.
  1190.  
  1191.  
  1192. --> ToolServer Tools
  1193.  
  1194. By means of the “ToolServer Tools” folder, you can make your most commonly-used
  1195. MPW tools and scripts available from the MPW menu in BBEdit.
  1196.  
  1197. When BBEdit starts up, it looks for a folder called “ToolServer Tools” in the
  1198. same folder as the BBEdit application. If this folder is present, BBEdit scans
  1199. the folder and adds the items in that folder to the menu. For an item to be
  1200. available, it must be either an MPW tool or a text file (type ‘TEXT’), and must
  1201. be in the main level of the “ToolServer Tools” folder. Files that aren’t text
  1202. files or aren’t MPW tools won’t be available from the MPW menu, nor will files
  1203. that are in folders within the “ToolServer Tools” folder.
  1204.  
  1205. You can add or remove tools and scripts while BBEdit is running; BBEdit will
  1206. automatically update the list of tools as necessary.
  1207.  
  1208. An item in the ToolServer Tools folder may be either a file or an alias; in the
  1209. case of the tools supplied with MPW or ToolServer, you may find it desirable to
  1210. make an alias to a tool or script, rather than to copy the tool to the
  1211. ToolServer Tools folder.
  1212.  
  1213.  
  1214. --> Naming Conventions and Behavior 
  1215.  
  1216. BBEdit behaves in a number of possible ways when you choose a tool or script
  1217. from the MPW menu:
  1218.  
  1219. •    If the item corresponds to an MPW tool, and that tool supports Commando,
  1220. then BBEdit will pull ToolServer to the front and bring up the Commando dialog
  1221. for that tool.
  1222.  
  1223. Note: If you’re using a ToolServer on a remote machine, you’ll get a message
  1224. from BBEdit that Commando isn’t supported for remote ToolServers.
  1225.  
  1226. •    If the item corresponds to an MPW tool that does not support Commando,
  1227. BBEdit will bring up a dialog in which you can enter the arguments for the
  1228. desired tool.
  1229.  
  1230. You can enter carriage returns in the argument text, if you desire; use the
  1231. Enter key as a shortcut for the Run button.
  1232.  
  1233. •    If the item corresponds to a script, and you’ve ended the name of the
  1234. script or the alias to the script with an ellipsis (“…”, by typing
  1235. option-semicolon), BBEdit will bring up the dialog for entering arguments, as
  1236. shown above.
  1237.  
  1238. •    If the item corresponds to a script with a ‘cmdo’ resource in it, then
  1239. BBEdit will pull ToolServer to the front and bring up the Commando dialog for
  1240. that script.
  1241.  
  1242. Note: If you’re using a ToolServer on a remote machine, you’ll get a message
  1243. from BBEdit that Commando isn’t supported for remote ToolServers.
  1244.  
  1245. •    If the item corresponds to a script that doesn’t have an ellipsis at the
  1246. end of its name, and which doesn’t have a ‘cmdo’ resource in it, BBEdit will
  1247. simply execute that script when you choose its name from the ToolServer menu.
  1248.  
  1249. ---
  1250.  
  1251. BBEdit and XTND 
  1252.  
  1253. BBEdit supports the Claris XTND translator mechanism for importing and exporting
  1254. files from and to other word-processor formats. Because of space and download
  1255. time considerations, the BBEdit demo package does not include the Claris XTND
  1256. system and translators. 
  1257.